home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / multi.lst < prev    next >
File List  |  1995-04-22  |  10KB  |  276 lines

  1.  
  2. 10 DIM PERSON$(200,10):POKE 16,64:POKE 53774,64 
  3. 20 DEFINT A-Z 
  4. 30 'THIS IS A PROGRAM DESIGNED TO 
  5. 40 'CREATE A DATA BASE AND SORT,LIST 
  6. 50 'AND CHANGE IT 
  7. 60 GRAPHICS 17 
  8. 70 FOR I=1 TO 5:PRINT #6," ":NEXT 
  9. 80 PRINT #6,"WELCOME TO MULTISORT" 
  10. 90 PRINT #6," ":PRINT #6,"        by":PRINT #6," " 
  11. 100 PRINT #6,"  michael l. hooper" 
  12. 110 FOR I=1 TO 5000:NEXT 
  13. 120 GRAPHICS 0:POKE 752,1 
  14. 130 ON ERROR 2730 
  15. 140 PRINT "WHAT TIME IS IT?":PRINT  
  16. 150 PRINT "PLEASE ENTER IN THIS FORMAT           HOUR:MINUTES:SECONDS                  EXAMPLE = 12:38:59 
  17. 160 INPUT T$:IF T$<>"" THEN TIME$=T$ ELSE TIME$="00:00:00" 
  18. 170 GRAPHICS 17:POKE 16,64:POKE 53774,64 
  19. 180 PRINT #6,"please choose one:" :PRINT #6," " 
  20. 190 PRINT #6,"i-INITIATE NEW FILE 
  21. 200 PRINT #6," " 
  22. 210 PRINT #6,"r-READ FROM DISK 
  23. 220 PRINT #6," " 
  24. 230 PRINT #6,"t-TERMINATE PROGRAM" 
  25. 240 PRINT #6," " 
  26. 250 PRINT #6,"s-SORT THE LIST" 
  27. 260 PRINT #6," " 
  28. 270 PRINT #6,"l-LIST ALL ITEMS" 
  29. 280 PRINT #6," " 
  30. 290 PRINT #6,"f-FIND AN ITEM" 
  31. 300 PRINT #6," " 
  32. 310 PRINT #6,"a-ADD AN ITEM" 
  33. 320 PRINT #6," " 
  34. 330 PRINT #6,"e-ERASE AN ITEM" 
  35. 340 PRINT #6," " 
  36. 350 PRINT #6,"c-CHANGE AN ITEM" 
  37. 360 PRINT #6," ":PRINT #6,"d-DISK DIRECTORY 
  38. 370 PRINT #6,AT(10,23);TIME$ 
  39. 380 IF TIME$="24:00:00" THEN TIME$="00:00:00" 
  40. 390 CHOICE$=INKEY$:IF CHOICE$="" THEN 370 
  41. 400 GRAPHICS 0:POKE 752,1 
  42. 410 IF CHOICE$="I" THEN  520 
  43. 420 IF CHOICE$="R" THEN  730 
  44. 430 IF CHOICE$="F" THEN  930 
  45. 440 IF CHOICE$="S" THEN  1180 
  46. 450 IF CHOICE$="L" THEN  1410 
  47. 460 IF CHOICE$="T" THEN  1590 
  48. 470 IF CHOICE$="C" THEN  1770 
  49. 480 IF CHOICE$="E" THEN  2030 
  50. 490 IF CHOICE$="A" THEN  2290 
  51. 500 IF CHOICE$="D" THEN 2430 
  52. 510 GOTO 170 
  53. 520 SETCOLOR 6,13,10:SETCOLOR 5,0,0:SETCOLOR 8,13,10: !     INITIATE A NEW FILE 
  54. 530 INPUT "HOW MANY FIELDS? ";N$:NUMBEROFIELDS=VAL(N$):IF NUMBEROFIELDS>10 OR NUMBEROFIELDS<1 THEN 530 
  55. 540 FOR I=1 TO NUMBEROFIELDS 
  56. 550 PRINT "NAME OF FIELD #";I; 
  57. 560 INPUT FIELDNAME$(I) 
  58. 570 IF FIELDNAME$(I)="" THEN 550 
  59. 580 NEXT 
  60. 590 I=1 
  61. 600 PRINT :PRINT "INPUT 'DONE' TO QUIT.":PRINT 
  62. 610 FOR J=1 TO NUMBEROFIELDS 
  63. 620 PRINT  FIELDNAME$(J);" OF ITEM #";I; 
  64. 630 INPUT PERSON$(I,J) 
  65. 640 IF PERSON$(I,J)="DONE" THEN 680 
  66. 650 NEXT 
  67. 660 I=I+1 
  68. 670 GOTO 600 
  69. 680 NUMBEROFPERSONNEL=I-1 
  70. 690 PRINT "YOU HAVE INPUT ";NUMBEROFIELDS;" FIELDS ON ";NUMBEROFPERSONNEL;" ITEMS" 
  71. 700 PRINT:PRINT "PUSH ANY KEY TO RETURN TO MENU" 
  72. 710 IF INKEY$="" THEN 710 
  73. 720 GOTO 170 
  74. 730 SETCOLOR 6,3,10:SETCOLOR 5,0,0:SETCOLOR 8,3,10:ON ERROR GOTO 2740:!       READ FROM DISK 
  75. 740 PRINT "WHAT IS THE NAME OF THE FILE";:INPUT CHOICE$:CHOICE$="D:"+CHOICE$ 
  76. 750 OPEN #4,CHOICE$ INPUT 
  77. 760 INPUT #4,NUMBEROFIELDS 
  78. 770 FOR I=1 TO NUMBEROFIELDS 
  79. 780 INPUT #4,FIELDNAME$(I) 
  80. 790 NEXT 
  81. 800 I=1 
  82. 810 FOR J=1 TO NUMBEROFIELDS 
  83. 820 INPUT #4,PERSON$(I,J) 
  84. 830 IF PERSON$(I,J)="DONE" THEN 870 
  85. 840 NEXT 
  86. 850 I=I+1 
  87. 860 GOTO 810 
  88. 870 NUMBEROFPERSONNEL=I-1 
  89. 880 PRINT :PRINT "YOU HAVE";NUMBEROFPERSONNEL;"ITEMS IN MEMORY,":PRINT  "WITH";NUMBEROFIELDS;"FIELDS OF INFO EACH" 
  90. 890 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU" 
  91. 900 IF INKEY$="" THEN 900 
  92. 910 CLOSE #4 
  93. 920 GOTO 170 
  94. 930 SETCOLOR 6,4,8:SETCOLOR 5,0,0:SETCOLOR 8,4,8:!                              FIND AN ITEM 
  95. 940 FOR I=1 TO NUMBEROFIELDS 
  96. 950 PRINT I;"- ";FIELDNAME$(I) 
  97. 960 NEXT 
  98. 970 PRINT:INPUT "SEARCH WHICH FIELD? ";F$:FIELDKEY=VAL(F$):IF FIELDKEY<1 OR FIELDKEY>NUMBEROFIELDS THEN 970 
  99. 980 INPUT "WHAT IS THE SEARCH KEY? ";KEY$ 
  100. 990 PRINT "OUTPUT TO SCREEN OR PRINTER (S/P)?"; 
  101. 1000 A$=INKEY$ 
  102. 1010 IF A$="S" THEN OPEN #7,"E:" OUTPUT:A=1:SETCOLOR 6,4,08:SETCOLOR 5,0,0:SETCOLOR 8,4,08:POKE 752,1:GOTO 1040 
  103. 1020 IF A$="P" THEN OPEN #7,"P:" OUTPUT:A=0:GOTO 1040 
  104. 1030 GOTO 1000 
  105. 1040 FOR I=1 TO NUMBEROFPERSONNEL 
  106. 1050 IF LEFT$(PERSON$(I,FIELDKEY),LEN(KEY$))=KEY$ THEN 1100 
  107. 1060 NEXT 
  108. 1070 PRINT :PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":PRINT:PRINT 
  109. 1080 PRINT "DO YOU WANT TO GO THROUGH AGAIN?(Y/N) ";:CLOSE #7 
  110. 1090 A$=INKEY$:IF A$="Y" THEN 940 ELSE IF A$="N" THEN 170 ELSE 1090 
  111. 1100 FOR J=1 TO NUMBEROFIELDS 
  112. 1110 PRINT #7,FIELDNAME$(J);"-";PERSON$(I,J) 
  113. 1120 NEXT 
  114. 1130 PRINT #7,STRING$(38,"="):IF A=0 THEN 1060 
  115. 1140 IF A=1 THEN PRINT "PUSH ANY KEY TO CONTINUE" 
  116. 1150 PRINT STRING$(38,"=") 
  117. 1160 IF INKEY$="" THEN 1160 
  118. 1170 GOTO 1060 
  119. 1180 SETCOLOR 6,7,8:SETCOLOR 5,0,0:SETCOLOR 8,7,8:!      SORT THE LIST 
  120. 1190 J=NUMBEROFPERSONNEL:PRINT 
  121. 1200 FOR I=1 TO NUMBEROFIELDS 
  122. 1210 PRINT I,FIELDNAME$(I) 
  123. 1220 NEXT 
  124. 1230 PRINT 
  125. 1240 PRINT "SORT BY WHICH FIELD"; 
  126. 1250 INPUT C$:CHOICE=VAL(C$):IF CHOICE<1 OR CHOICE>NUMBEROFIELDS THEN 1250 
  127. 1260 PRINT :PRINT "SORTING" 
  128. 1270 FOR I=1 TO NUMBEROFPERSONNEL-1 
  129. 1280 IF PERSON$(I,CHOICE)>PERSON$(I+1,CHOICE) THEN GOSUB 1350 
  130. 1290 NEXT I 
  131. 1300 J=J-1:IF J>0 THEN 1260 
  132. 1310 PRINT :PRINT "ALL DONE" 
  133. 1320 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU" 
  134. 1330 IF INKEY$="" THEN 1330 
  135. 1340 GOTO 170 
  136. 1350 FOR K=1 TO NUMBEROFIELDS 
  137. 1360 QAVE$=PERSON$(I,K) 
  138. 1370 PERSON$(I,K)=PERSON$(I+1,K) 
  139. 1380 PERSON$(I+1,K)=QAVE$ 
  140. 1390 NEXT K 
  141. 1400 RETURN 
  142. 1410 SETCOLOR 6,11,6:SETCOLOR 5,0,0:SETCOLOR 6,11,6:!                            LIST ALL ITEMS 
  143. 1420 PRINT "OUTPUT TO SCREEN OR PRINTER (S/P)?"; 
  144. 1430 A$=INKEY$ 
  145. 1440 IF A$="S" THEN OPEN #7,"E:" OUTPUT:A=1:SETCOLOR 6,11,6:SETCOLOR 5,0,0:SETCOLOR 8,11,6:GOTO 1470 
  146. 1450 IF A$="P" THEN OPEN #7,"P:" OUTPUT:A=0:GOTO 1470 
  147. 1460 GOTO 1430 
  148. 1470 FOR I=1 TO NUMBEROFPERSONNEL 
  149. 1480 FOR J=1 TO NUMBEROFIELDS:POKE 752,1 
  150. 1490 PRINT #7, FIELDNAME$(J);"-";PERSON$(I,J) 
  151. 1500 NEXT J 
  152. 1510 PRINT #7, STRING$(38,"="):IF A=0 THEN 1550 
  153. 1520 PRINT "PRESS ANY KEY TO CONTINUE LISTING" 
  154. 1530 IF INKEY$="" THEN 1530 
  155. 1540 PRINT #7, STRING$(38,"=") 
  156. 1550 NEXT I 
  157. 1560 CLOSE #7:PRINT :PRINT "YOU HAVE GONE THROUGH THE WHOLE LIST" 
  158. 1570 PRINT "DO YOU WANT TO DO IT AGAIN (Y/N)? "; 
  159. 1580 A$=INKEY$:IF A$="Y" THEN 1410 ELSE IF A$="N" THEN 170 ELSE 1580 
  160. 1590 SETCOLOR 8,11,6:SETCOLOR 6,11,6:SETCOLOR 5,0,0:!                            WRITE TO DISK 
  161. 1600 PRINT "WHAT DO YOU WANT TO NAME THE FILE?":INPUT CHOICE$ 
  162. 1610 CHOICE$="D:"+CHOICE$ 
  163. 1620 OPEN #4,CHOICE$ OUTPUT 
  164. 1630 PRINT #4,NUMBEROFIELDS 
  165. 1640 FOR I=1 TO NUMBEROFIELDS 
  166. 1650 PRINT #4,FIELDNAME$(I) 
  167. 1660 NEXT I 
  168. 1670 FOR I=1 TO NUMBEROFPERSONNEL+1 
  169. 1680 FOR J=1 TO NUMBEROFIELDS 
  170. 1690 PRINT #4,PERSON$(I,J) 
  171. 1700 NEXT J 
  172. 1710 NEXT I 
  173. 1720 PRINT :PRINT "ALL DONE":CLOSE #4 
  174. 1730 PRINT 
  175. 1740 PRINT "DO YOU WANT TO GO BACK TO THE MENU?"; 
  176. 1750 A$=INKEY$:IF A$="Y" THEN 170 ELSE IF A$="N" THEN 1760 ELSE GOTO 1750 
  177. 1760 GRAPHICS 0:PRINT "OK-Goodbye....":NEW:END 
  178. 1770 SETCOLOR 6,9,8:SETCOLOR 5,0,0:SETCOLOR 8,9,8:!                              CHANGE AN ITEM 
  179. 1780 FOR I=1 TO NUMBEROFIELDS 
  180. 1790 PRINT I,FIELDNAME$(I) 
  181. 1800 NEXT 
  182. 1810 PRINT:PRINT "WHICH FIELD TO SEARCH";:INPUT CHOICE:IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 1810 
  183. 1820 INPUT "WHAT IS THE SEARCH KEY? ";KEY$ 
  184. 1830 FOR I=1 TO NUMBEROFPERSONNEL 
  185. 1840 IF LEFT$(PERSON$(I,CHOICE),LEN(KEY$))=KEY$ THEN 1870 
  186. 1850 NEXT 
  187. 1860 PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":PRINT:GOTO 2000 
  188. 1870 PRINT STRING$(38,"=") 
  189. 1880 FOR K=1 TO NUMBEROFIELDS 
  190. 1890 PRINT FIELDNAME$(K);"-";PERSON$(I,K) 
  191. 1900 NEXT 
  192. 1910 PRINT :PRINT "IS THIS THE CORRECT ITEM? " 
  193. 1920 A$=INKEY$:IF A$="N" THEN 1850 ELSE IF A$<>"Y" THEN 1920 
  194. 1930 PRINT :FOR K=1 TO NUMBEROFIELDS 
  195. 1940 PRINT K,FIELDNAME$(K) 
  196. 1950 NEXT 
  197. 1960 PRINT :PRINT "CHANGE WHICH FIELD";:INPUT C$:CHOICE=VAL(C$):IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 1960 
  198. 1970 INPUT "WHAT IS IT TO BE CHANGED TO? ";CHOICE$ 
  199. 1980 PERSON$(I,CHOICE)=CHOICE$ 
  200. 1990 PRINT :PRINT "OK-IT IS NOW CHANGED" 
  201. 2000 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU" 
  202. 2010 IF INKEY$="" THEN 2010 
  203. 2020 GOTO 170 
  204. 2030 SETCOLOR 5,8,10:SETCOLOR 6,0,0:!      ERASE AN ITEM 
  205. 2040 FOR I=1 TO NUMBEROFIELDS 
  206. 2050 PRINT I,FIELDNAME$(I) 
  207. 2060 NEXT 
  208. 2070 PRINT 
  209. 2080 PRINT "CHOOSE FROM WHICH FIELD";:INPUT C$:CHOICE=VAL(C$):IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 2080 
  210. 2090 PRINT:PRINT "WHAT IS THE SEARCH KEY";:INPUT CHOICE$:PRINT  
  211. 2100 FOR I=1 TO NUMBEROFPERSONNEL 
  212. 2110 IF LEFT$(PERSON$(I,CHOICE),LEN(CHOICE$))=CHOICE$ THEN GOTO 2140 
  213. 2120 NEXT 
  214. 2130 PRINT:PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":GOTO 2260 
  215. 2140 PRINT :FOR J=1 TO NUMBEROFIELDS 
  216. 2150 PRINT FIELDNAME$(J);"-";PERSON$(I,J) 
  217. 2160 NEXT 
  218. 2170 PRINT STRING$(38,"=") 
  219. 2180 PRINT